草庐IT

c++ - SomeClass **ptr; 之间的区别和 SomeClass *ptr;

全部标签

c++ - 如何知道 GetPrivateProfileInt/String 失败的原因

我正在处理旧应用程序中的一段代码,在VisualStudio2008中使用C++。它尝试从INI文件中读取一些值,并且我正在尝试在该部分的情况下进行一些错误处理或文件中不存在我尝试读取的key。这是代码片段:intnValue=GetPrivateProfileInt(SECTION,KEY,-1,sINIFile);if(nValue==-1)//defaultvalue{intnLastError=GetLastError();if(nLastError!=0){//dosomething}}sINIFile包含我所需的INI文件的完整路径。经过一些测试,我发现GetLastErr

c - W7 和 Linux Mint 中不同的 sizeof(long) 值

IDE:代码::block13.12编译器:GNUGCC应用类型:控制台应用语言:C平台:W7和LinuxMint我为自定义语言编写了编译器和解释器,为Windows和Linux制作了可执行文件。编译器-显然-生成一个由解释器读取的代码文件。我想在Windows和Linux上都使用编译后的文件。因此,用Windows编译器创建的文件必须能被Linux解释器读取,反之亦然。我无法使兼容性正常工作。我发现在Windows中,sizeof(long)=4,在Linux中,sizeof(long)=8。由于编译器会将长整数写入输出文件,我认为大小差异是我遇到的(部分)问题。我查看了这个论坛,但

c++ - 编译器之间的 qt dll 兼容性

Qt库声明了跨主要版本的二进制兼容性。但是不同编译器之间的兼容性呢?例如,我有一个应用程序和2个使用Qt(动态链接)的dll。但其中一个是用MSVC构建的,另一个是用MinGW构建的。因此它们链接到不同版本的Qt库(相同版本)。问题是:这些dll是否可以使用一个共享的Qtdll协同工作?如果不是,那么考虑到更改编译器不是一个选项,有哪些可行的解决方法?我查看了带有dependencywalker的Qtdll,我发现有几十个导出的函数具有编译器特定的名称重整。所以看起来不可能让它们一起工作。 最佳答案 C++没有标准的ABI。这意味着

c - 调用 NdisAcquireSpinLock 后访问全局变量导致 IRQL_NOT_LESS_OR_EQUAL BSoD

我有一个NDIS过滤器驱动程序(WinPcap的更新)并在Windows1010586x64VM上对其进行了测试。我启用了验证器,它在启动Wireshark时导致IRQL_NOT_LESS_OR_EQUALBSoD(也就是使用我的驱动程序的功能)。这是转储:1:kd>!analyze-v**********************************************************************************BugcheckAnalysis******************************************************

c - mainCRTStartup 与 wmainCRTStartup

IunderstandthatVisualC++LinkerchoosesmainCRTStartup/wmainCRTStartupwhenoption/SUBSYSTEMissettoCONSOLE.我不明白的是链接器如何在两者之间进行选择。我在VC2015上用一个简单的程序测试过,如果wmain存在(连main也存在),就调用wmain。否则调用main。 最佳答案 链接器将尝试通过遍历objs的符号表来推断需要哪个入口点例程。它在_main之前搜索_wmain,这就是为什么选择前者,即使您同时拥有两者。然后链接器从您的默认l

c - 使 C 程序在 x 秒后重新启动

在Windows中,是否可以让用C编写的程序停止并在x秒后自行重新启动?如果是,如何实现?? 最佳答案 您可以通过让您的程序启动第二个程序来实现该目标,该程序的唯一功能是等待一段时间,然后再次启动您的第一个程序。在伪代码中,这个想法是:ProgramA:DowhatevertheprogramissupposedtodoLaunchprogramBexit.ProgramB:WaitpredeterminedtimeLaunchprogramAexit.我希望这能充分回答您的问题。 关于

c - WTS_CLIENT_ADDRESS 地址无法正确打印

我正在尝试获取登录到计算机的所有RDP连接的IP地址。我正在使用WTSEnumerateSessions和WTSQuerySessionInformation来检索指向包含地址的WTS_CLIENT_ADDRESS结构的指针。这是代码的一部分:WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE,SessionNo,WTSClientAddress,&ppBuffer,&pBytesReturned);address=(WTS_CLIENT_ADDRESS*)ppBuffer;if(AF_INET==address->AddressF

c - malloc() 并分配 : C code in run well in OS X; not in Win 8. 1

我编写的代码在OSX中没有任何问题,但在VS2013社区上运行时出现以下错误。Unhandledexceptionat0x001A3D22inMyproject.exe:0xC0000005:Accessviolationwritinglocation0x00000000.这是有问题的代码。原来的代码多了一些行,但是下面的代码自己产生了同样的错误。#includeintmain(void){int**p;p=(int**)malloc(sizeof(int*)*5000);for(inti=0;i这是发生错误时的状态。i和p为红色。namevaluetypei4118intp0x007

c# - 在 Windows 中的两个不同应用程序之间共享 sqlite 数据库

我有两个Windows桌面应用程序,它们是用两种不同的语言编写的:一种使用VC++,另一种使用C#。我们需要使我们的数据库在两个应用程序之间通用。我们如何创建一个公共(public)文件夹来使用相同的数据库?我们如何在这两个应用程序之间共享数据库路径? 最佳答案 SQLite本身没有访问限制,可以很好地处理来自多个进程的锁定。您只需确保两个应用程序都可以访问同一个文件夹。最简单的方法是在用户的应用程序数据文件夹中创建一个目录(例如,%APPDATA%\MyLittleCompany\SharedDB\data.sqlite)。

我可以使用自动要求管理员权限的 GCC 编译 C 程序吗?

我想编译一个程序,在先前执行的程序退出后简单地终止任务。如果没有管理员权限,这是行不通的。我知道您可以从可执行文件属性的兼容性选项卡中选择“以管理员身份运行程序”,但如果可能的话,我想在分发程序时避免这样做。我在Windows8.1上使用GCC4.8.1进行编译。编辑:大约5年后我可能会选择system("tskill")在这种情况下,因为它不需要用户进程的管理员权限。或者使用runas/vbscript进行一些破解。 最佳答案 看起来这可能已经被弄清楚了——你可能想看看这里是否有帮助:Embedmanifestfiletorequ